// 进行 axios 二次封装
import axios from 'axios'
import { ElMessage } from 'element-plus'
import useUserStore from '@/store/modules/user'
// 配置基础路径 、超时时间
let request = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API,
  timeout: 5000,
})

// 请求、响应拦截器
request.interceptors.request.use((config) => {
  // config 配置对象 headers 属性请求头 经常给服务器端携带公共参数
  // 返回配置对象
  let userStore = useUserStore()
  if (userStore.token) {
    config.headers.token = userStore.token
  }

  return config
})

request.interceptors.response.use(
  (response) => {
    // 简化数据
    return response.data
  },
  (error) => {
    // 处理 http 网络错误
    console.log('error', error)

    // let message = ''
    // let status = error.response.status
    // switch (status) {
    //   case 401:
    //     message = 'TOKEN 过期'
    //     break
    //   case 403:
    //     message = '无权访问'
    //     break
    //   case 404:
    //     message = '请求地址错误'
    //     break
    //   case 500:
    //     message = '服务器出现问题'
    //     break
    //   default:
    //     message = '网络出现问题'
    //     break
    // }
    // ElMessage({
    //   type: 'error',
    //   message,
    // })
    return Promise.reject(error) // 终结 Promise 链
  },
)

export default request
